package tmhm.shemes;

import java.awt.Point;
import java.util.ArrayList;

import tmhm.components.*;
import tmhm.gui.*;


public class Fetch2 {

    private static DC DC1, DC2, DC3, DC4, DC5, DC6, DC7, DC8, DC9, DC10, DC11;
    private static GuiScheme gui;

    public static GuiScheme getGui() {
        return gui;
    }

    public static void init() {

        DC1 = new DC(2);
        DC2 = new DC(3);
        DC3 = new DC(3);
        DC4 = new DC(3);
        DC5 = new DC(3);
        DC6 = new DC(3);
        DC7 = new DC(3);
        DC8 = new DC(3);
        DC9 = new DC(3);
        DC10 = new DC(3);
        DC11 = new DC(3);
    }

    public static void connect() {

        DC1.setE(Exec2.START());
        DC1.setInputPin(1, Fetch1.IR31());
        DC1.setInputPin(0, Fetch1.IR30());

        DC2.setE(DC1.getOut(0));
        DC2.setInputPin(2, Fetch1.IR29());
        DC2.setInputPin(1, Fetch1.IR28());
        DC2.setInputPin(0, Fetch1.IR27());

        DC3.setE(DC2.getOut(0));
        DC3.setInputPin(2, Fetch1.IR26());
        DC3.setInputPin(1, Fetch1.IR25());
        DC3.setInputPin(0, Fetch1.IR24());

        DC4.setE(DC2.getOut(1));
        DC4.setInputPin(2, Fetch1.IR26());
        DC4.setInputPin(1, Fetch1.IR25());
        DC4.setInputPin(0, Fetch1.IR24());

        DC5.setE(DC2.getOut(2));
        DC5.setInputPin(2, Fetch1.IR26());
        DC5.setInputPin(1, Fetch1.IR25());
        DC5.setInputPin(0, Fetch1.IR24());

        DC6.setE(DC2.getOut(3));
        DC6.setInputPin(2, Fetch1.IR26());
        DC6.setInputPin(1, Fetch1.IR25());
        DC6.setInputPin(0, Fetch1.IR24());

        DC7.setE(DC2.getOut(4));
        DC7.setInputPin(2, Fetch1.IR26());
        DC7.setInputPin(1, Fetch1.IR25());
        DC7.setInputPin(0, Fetch1.IR24());

        DC8.setE(DC2.getOut(5));
        DC8.setInputPin(2, Fetch1.IR26());
        DC8.setInputPin(1, Fetch1.IR25());
        DC8.setInputPin(0, Fetch1.IR24());

        DC9.setE(DC2.getOut(6));
        DC9.setInputPin(2, Fetch1.IR26());
        DC9.setInputPin(1, Fetch1.IR25());
        DC9.setInputPin(0, Fetch1.IR24());

        DC10.setE(DC2.getOut(7));
        DC10.setInputPin(2, Fetch1.IR26());
        DC10.setInputPin(1, Fetch1.IR25());
        DC10.setInputPin(0, Fetch1.IR24());

        DC11.setE(new Pin(true));
        DC11.setInputPin(2, Fetch1.IR23());
        DC11.setInputPin(1, Fetch1.IR22());
        DC11.setInputPin(0, Fetch1.IR21());
    }

    public static void gui() {
        GuiLine line; // Pomocna promenljiva
        gui = new GuiScheme("tmhm/tmhm/images/Fetch2.png");

        ArrayList<ArrayList<Point>> sections;
        ArrayList<Point> points;


        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(82, 76));
        points.add(new Point(89, 76));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR31());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(82, 90));
        points.add(new Point(89, 90));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR30());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(117, 120));
        points.add(new Point(117, 126));
        sections.add(points);
        line = new GuiLine(sections, Exec2.START());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 105));
        points.add(new Point(151, 105));
        sections.add(points);
        line = new GuiLine(sections, DC1.getOut(0));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 90));
        points.add(new Point(151, 90));
        sections.add(points);
        line = new GuiLine(sections, DC1.getOut(1));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 76));
        points.add(new Point(151, 76));
        sections.add(points);
        line = new GuiLine(sections, DC1.getOut(2));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 61));
        points.add(new Point(151, 61));
        sections.add(points);
        line = new GuiLine(sections, DC1.getOut(3));
        gui.addLine(line);


        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(263, 69));
        points.add(new Point(269, 69));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR29());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(263, 83));
        points.add(new Point(269, 83));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR28());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(263, 97));
        points.add(new Point(269, 97));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR27());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(297, 149));
        points.add(new Point(297, 155));
        sections.add(points);
        line = new GuiLine(sections, DC1.getOut(0));
        gui.addLine(line);


        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 133));
        points.add(new Point(331, 133));
        sections.add(points);
        line = new GuiLine(sections, DC2.getOut(0));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 119));
        points.add(new Point(331, 119));
        sections.add(points);
        line = new GuiLine(sections, DC2.getOut(1));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 105));
        points.add(new Point(331, 105));
        sections.add(points);
        line = new GuiLine(sections, DC2.getOut(2));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 90));
        points.add(new Point(331, 90));
        sections.add(points);
        line = new GuiLine(sections, DC2.getOut(3));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 76));
        points.add(new Point(331, 76));
        sections.add(points);
        line = new GuiLine(sections, DC2.getOut(4));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 61));
        points.add(new Point(331, 61));
        sections.add(points);
        line = new GuiLine(sections, DC2.getOut(5));
        gui.addLine(line);
        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 47));
        points.add(new Point(331, 47));
        sections.add(points);
        line = new GuiLine(sections, DC2.getOut(6));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 33));
        points.add(new Point(331, 33));
        sections.add(points);
        line = new GuiLine(sections, DC2.getOut(7));
        gui.addLine(line);


        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(443, 69));
        points.add(new Point(449, 69));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR26());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(443, 83));
        points.add(new Point(449, 83));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR25());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(443, 97));
        points.add(new Point(449, 97));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR24());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(477, 149));
        points.add(new Point(477, 155));
        sections.add(points);
        line = new GuiLine(sections, DC2.getOut(0));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 133));
        points.add(new Point(511, 133));
        sections.add(points);
        line = new GuiLine(sections, DC3.getOut(0));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 119));
        points.add(new Point(511, 119));
        sections.add(points);
        line = new GuiLine(sections, DC3.getOut(1));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 105));
        points.add(new Point(511, 105));
        sections.add(points);
        line = new GuiLine(sections, DC3.getOut(2));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 90));
        points.add(new Point(511, 90));
        sections.add(points);
        line = new GuiLine(sections, DC3.getOut(3));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 76));
        points.add(new Point(511, 76));
        sections.add(points);
        line = new GuiLine(sections, DC3.getOut(4));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 61));
        points.add(new Point(511, 61));
        sections.add(points);
        line = new GuiLine(sections, DC3.getOut(5));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 47));
        points.add(new Point(511, 47));
        sections.add(points);
        line = new GuiLine(sections, DC3.getOut(6));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 33));
        points.add(new Point(511, 33));
        sections.add(points);
        line = new GuiLine(sections, DC3.getOut(7));
        gui.addLine(line);


        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(82, 249));
        points.add(new Point(89, 249));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR26());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(82, 263));
        points.add(new Point(89, 263));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR25());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(82, 278));
        points.add(new Point(89, 278));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR24());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(117, 329));
        points.add(new Point(117, 335));
        sections.add(points);
        line = new GuiLine(sections, DC1.getOut(1));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 314));
        points.add(new Point(151, 314));
        sections.add(points);
        line = new GuiLine(sections, DC4.getOut(0));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 299));
        points.add(new Point(151, 299));
        sections.add(points);
        line = new GuiLine(sections, DC4.getOut(1));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 285));
        points.add(new Point(151, 285));
        sections.add(points);
        line = new GuiLine(sections, DC4.getOut(2));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 270));
        points.add(new Point(151, 270));
        sections.add(points);
        line = new GuiLine(sections, DC4.getOut(3));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 256));
        points.add(new Point(151, 256));
        sections.add(points);
        line = new GuiLine(sections, DC4.getOut(4));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 242));
        points.add(new Point(151, 242));
        sections.add(points);
        line = new GuiLine(sections, DC4.getOut(5));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 227));
        points.add(new Point(151, 227));
        sections.add(points);
        line = new GuiLine(sections, DC4.getOut(6));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 213));
        points.add(new Point(151, 213));
        sections.add(points);
        line = new GuiLine(sections, DC4.getOut(7));
        gui.addLine(line);


        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(263, 249));
        points.add(new Point(269, 249));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR26());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(263, 263));
        points.add(new Point(269, 263));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR25());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(263, 278));
        points.add(new Point(269, 278));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR24());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(297, 329));
        points.add(new Point(297, 335));
        sections.add(points);
        line = new GuiLine(sections, DC2.getOut(2));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 314));
        points.add(new Point(331, 314));
        sections.add(points);
        line = new GuiLine(sections, DC5.getOut(0));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 299));
        points.add(new Point(331, 299));
        sections.add(points);
        line = new GuiLine(sections, DC5.getOut(1));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 285));
        points.add(new Point(331, 285));
        sections.add(points);
        line = new GuiLine(sections, DC5.getOut(2));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 270));
        points.add(new Point(331, 270));
        sections.add(points);
        line = new GuiLine(sections, DC5.getOut(3));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 256));
        points.add(new Point(331, 256));
        sections.add(points);
        line = new GuiLine(sections, DC5.getOut(4));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 242));
        points.add(new Point(331, 242));
        sections.add(points);
        line = new GuiLine(sections, DC5.getOut(5));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 227));
        points.add(new Point(331, 227));
        sections.add(points);
        line = new GuiLine(sections, DC5.getOut(6));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 213));
        points.add(new Point(331, 213));
        sections.add(points);
        line = new GuiLine(sections, DC5.getOut(7));
        gui.addLine(line);



        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(443, 249));
        points.add(new Point(449, 249));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR26());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(443, 263));
        points.add(new Point(449, 263));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR25());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(443, 278));
        points.add(new Point(449, 278));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR24());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(477, 329));
        points.add(new Point(477, 335));
        sections.add(points);
        line = new GuiLine(sections, DC2.getOut(3));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 314));
        points.add(new Point(511, 314));
        sections.add(points);
        line = new GuiLine(sections, DC6.getOut(0));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 299));
        points.add(new Point(511, 299));
        sections.add(points);
        line = new GuiLine(sections, DC6.getOut(1));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 285));
        points.add(new Point(511, 285));
        sections.add(points);
        line = new GuiLine(sections, DC6.getOut(2));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 270));
        points.add(new Point(511, 270));
        sections.add(points);
        line = new GuiLine(sections, DC6.getOut(3));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 256));
        points.add(new Point(511, 256));
        sections.add(points);
        line = new GuiLine(sections, DC6.getOut(4));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 242));
        points.add(new Point(511, 242));
        sections.add(points);
        line = new GuiLine(sections, DC6.getOut(5));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 227));
        points.add(new Point(511, 227));
        sections.add(points);
        line = new GuiLine(sections, DC6.getOut(6));
        gui.addLine(line);
        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 213));
        points.add(new Point(511, 213));
        sections.add(points);
        line = new GuiLine(sections, DC6.getOut(7));
        gui.addLine(line);


        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(82, 429));
        points.add(new Point(89, 429));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR26());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(82, 443));
        points.add(new Point(89, 443));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR25());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(82, 458));
        points.add(new Point(89, 458));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR24());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(117, 509));
        points.add(new Point(117, 515));
        sections.add(points);
        line = new GuiLine(sections, DC2.getOut(4));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 494));
        points.add(new Point(151, 494));
        sections.add(points);
        line = new GuiLine(sections, DC7.getOut(0));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 479));
        points.add(new Point(151, 479));
        sections.add(points);
        line = new GuiLine(sections, DC7.getOut(1));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 465));
        points.add(new Point(151, 465));
        sections.add(points);
        line = new GuiLine(sections, DC7.getOut(2));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 451));
        points.add(new Point(151, 451));
        sections.add(points);
        line = new GuiLine(sections, DC7.getOut(3));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 436));
        points.add(new Point(151, 436));
        sections.add(points);
        line = new GuiLine(sections, DC7.getOut(4));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 422));
        points.add(new Point(151, 422));
        sections.add(points);
        line = new GuiLine(sections, DC7.getOut(5));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 407));
        points.add(new Point(151, 407));
        sections.add(points);
        line = new GuiLine(sections, DC7.getOut(6));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 393));
        points.add(new Point(151, 393));
        sections.add(points);
        line = new GuiLine(sections, DC7.getOut(7));
        gui.addLine(line);


        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(263, 429));
        points.add(new Point(269, 429));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR26());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(263, 443));
        points.add(new Point(269, 443));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR25());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(263, 458));
        points.add(new Point(269, 458));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR24());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(297, 509));
        points.add(new Point(297, 515));
        sections.add(points);
        line = new GuiLine(sections, DC2.getOut(5));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 494));
        points.add(new Point(331, 494));
        sections.add(points);
        line = new GuiLine(sections, DC8.getOut(0));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 479));
        points.add(new Point(331, 479));
        sections.add(points);
        line = new GuiLine(sections, DC8.getOut(1));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 465));
        points.add(new Point(331, 465));
        sections.add(points);
        line = new GuiLine(sections, DC8.getOut(2));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 451));
        points.add(new Point(331, 451));
        sections.add(points);
        line = new GuiLine(sections, DC8.getOut(3));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 436));
        points.add(new Point(331, 436));
        sections.add(points);
        line = new GuiLine(sections, DC8.getOut(4));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 422));
        points.add(new Point(331, 422));
        sections.add(points);
        line = new GuiLine(sections, DC8.getOut(5));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 407));
        points.add(new Point(331, 407));
        sections.add(points);
        line = new GuiLine(sections, DC8.getOut(6));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 393));
        points.add(new Point(331, 393));
        sections.add(points);
        line = new GuiLine(sections, DC8.getOut(7));
        gui.addLine(line);


        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(443, 429));
        points.add(new Point(449, 429));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR26());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(443, 443));
        points.add(new Point(449, 443));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR25());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(443, 458));
        points.add(new Point(449, 458));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR24());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(477, 509));
        points.add(new Point(477, 515));
        sections.add(points);
        line = new GuiLine(sections, DC2.getOut(6));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 494));
        points.add(new Point(511, 494));
        sections.add(points);
        line = new GuiLine(sections, DC9.getOut(0));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 479));
        points.add(new Point(511, 479));
        sections.add(points);
        line = new GuiLine(sections, DC9.getOut(1));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 465));
        points.add(new Point(511, 465));
        sections.add(points);
        line = new GuiLine(sections, DC9.getOut(2));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 451));
        points.add(new Point(511, 451));
        sections.add(points);
        line = new GuiLine(sections, DC9.getOut(3));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 436));
        points.add(new Point(511, 436));
        sections.add(points);
        line = new GuiLine(sections, DC9.getOut(4));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 422));
        points.add(new Point(511, 422));
        sections.add(points);
        line = new GuiLine(sections, DC9.getOut(5));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 407));
        points.add(new Point(511, 407));
        sections.add(points);
        line = new GuiLine(sections, DC9.getOut(6));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(505, 393));
        points.add(new Point(511, 393));
        sections.add(points);
        line = new GuiLine(sections, DC9.getOut(7));
        gui.addLine(line);



        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(82, 609));
        points.add(new Point(89, 609));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR26());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(82, 624));
        points.add(new Point(89, 624));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR25());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(82, 638));
        points.add(new Point(89, 638));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR24());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(117, 689));
        points.add(new Point(117, 696));
        sections.add(points);
        line = new GuiLine(sections, DC2.getOut(7));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 674));
        points.add(new Point(151, 674));
        sections.add(points);
        line = new GuiLine(sections, DC10.getOut(0));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 660));
        points.add(new Point(151, 660));
        sections.add(points);
        line = new GuiLine(sections, DC10.getOut(1));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 645));
        points.add(new Point(151, 645));
        sections.add(points);
        line = new GuiLine(sections, DC10.getOut(2));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 631));
        points.add(new Point(151, 631));
        sections.add(points);
        line = new GuiLine(sections, DC10.getOut(3));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 616));
        points.add(new Point(151, 616));
        sections.add(points);
        line = new GuiLine(sections, DC10.getOut(4));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 602));
        points.add(new Point(151, 602));
        sections.add(points);
        line = new GuiLine(sections, DC10.getOut(5));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 588));
        points.add(new Point(151, 588));
        sections.add(points);
        line = new GuiLine(sections, DC10.getOut(6));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(145, 573));
        points.add(new Point(151, 573));
        sections.add(points);
        line = new GuiLine(sections, DC10.getOut(7));
        gui.addLine(line);


        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(263, 609));
        points.add(new Point(269, 609));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR23());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(263, 624));
        points.add(new Point(269, 624));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR22());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(263, 638));
        points.add(new Point(269, 638));
        sections.add(points);
        line = new GuiLine(sections, Fetch1.IR21());
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(297, 689));
        points.add(new Point(297, 696));
        sections.add(points);
        line = new GuiLine(sections, new Pin(true));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 674));
        points.add(new Point(331, 674));
        sections.add(points);
        line = new GuiLine(sections, DC11.getOut(0));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 660));
        points.add(new Point(331, 660));
        sections.add(points);
        line = new GuiLine(sections, DC11.getOut(1));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 645));
        points.add(new Point(331, 645));
        sections.add(points);
        line = new GuiLine(sections, DC11.getOut(2));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 631));
        points.add(new Point(331, 631));
        sections.add(points);
        line = new GuiLine(sections, DC11.getOut(3));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 616));
        points.add(new Point(331, 616));
        sections.add(points);
        line = new GuiLine(sections, DC11.getOut(4));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 602));
        points.add(new Point(331, 602));
        sections.add(points);
        line = new GuiLine(sections, DC11.getOut(5));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 588));
        points.add(new Point(331, 588));
        sections.add(points);
        line = new GuiLine(sections, DC11.getOut(6));
        gui.addLine(line);

        sections = new ArrayList<ArrayList<Point>>();
        points = new ArrayList<Point>();
        points.add(new Point(325, 573));
        points.add(new Point(331, 573));
        sections.add(points);
        line = new GuiLine(sections, DC11.getOut(7));
        gui.addLine(line);


    }

    public static Pin G0() {
        return DC1.getOut(0);
    }

    public static Pin G1() {
        return DC1.getOut(1);
    }

    public static Pin G2() {
        return DC1.getOut(2);
    }

    public static Pin G3() {
        return DC1.getOut(3);
    }

    public static Pin G0_PG0() {
        return DC2.getOut(0);
    }

    public static Pin G0_PG1() {
        return DC2.getOut(1);
    }

    public static Pin G0_PG2() {
        return DC2.getOut(2);
    }

    public static Pin G0_PG3() {
        return DC2.getOut(3);
    }

    public static Pin G0_PG4() {
        return DC2.getOut(4);
    }

    public static Pin G0_PG5() {
        return DC2.getOut(5);
    }

    public static Pin G0_PG6() {
        return DC2.getOut(6);
    }

    public static Pin G0_PG7() {
        return DC2.getOut(7);
    }

    public static Pin NOP() {
        return DC3.getOut(0);
    }

    public static Pin HALT() {
        return DC3.getOut(1);
    }

    public static Pin G0_PG0_2() {
        return DC3.getOut(2);
    }

    public static Pin G0_PG0_3() {
        return DC3.getOut(3);
    }

    public static Pin INTD() {
        return DC3.getOut(4);
    }

    public static Pin INTE() {
        return DC3.getOut(5);
    }

    public static Pin TRPD() {
        return DC3.getOut(6);
    }

    public static Pin TRPE() {
        return DC3.getOut(7);
    }

    public static Pin G0_PG1_0() {
        return DC4.getOut(0);
    }

    public static Pin JMP() {
        return DC4.getOut(1);
    }

    public static Pin JSR() {
        return DC4.getOut(2);
    }

    public static Pin RTS() {
        return DC4.getOut(3);
    }

    public static Pin INT() {
        return DC4.getOut(4);
    }

    public static Pin RTI() {
        return DC4.getOut(5);
    }

    public static Pin G0_PG1_6() {
        return DC4.getOut(6);
    }

    public static Pin G0_PG1_7() {
        return DC4.getOut(7);
    }

    public static Pin BEQL() {
        return DC5.getOut(0);
    }

    public static Pin BNEQL() {
        return DC5.getOut(1);
    }

    public static Pin BNEG() {
        return DC5.getOut(2);
    }

    public static Pin BNNEG() {
        return DC5.getOut(3);
    }

    public static Pin BOVF() {
        return DC5.getOut(4);
    }

    public static Pin BNOVF() {
        return DC5.getOut(5);
    }

    public static Pin BCAR() {
        return DC5.getOut(6);
    }

    public static Pin BNCAR() {
        return DC5.getOut(7);
    }

    public static Pin BGRT() {
        return DC6.getOut(0);
    }

    public static Pin BGRTE() {
        return DC6.getOut(1);
    }

    public static Pin BLSS() {
        return DC6.getOut(2);
    }

    public static Pin BLSSE() {
        return DC6.getOut(3);
    }

    public static Pin BGRTU() {
        return DC6.getOut(4);
    }

    public static Pin BGRTEU() {
        return DC6.getOut(5);
    }

    public static Pin BLSSU() {
        return DC6.getOut(6);
    }

    public static Pin BLSSEU() {
        return DC6.getOut(7);
    }

    public static Pin LDB() {
        return DC7.getOut(0);
    }

    public static Pin LDW() {
        return DC7.getOut(1);
    }

    public static Pin STB() {
        return DC7.getOut(2);
    }

    public static Pin STW() {
        return DC7.getOut(3);
    }

    public static Pin POPB() {
        return DC7.getOut(4);
    }

    public static Pin POPW() {
        return DC7.getOut(5);
    }

    public static Pin PUSHB() {
        return DC7.getOut(6);
    }

    public static Pin PUSHW() {
        return DC7.getOut(7);
    }

    public static Pin LDIVTP() {
        return DC8.getOut(0);
    }

    public static Pin STIVTP() {
        return DC8.getOut(1);
    }

    public static Pin LDIMR() {
        return DC8.getOut(2);
    }

    public static Pin STIMR() {
        return DC8.getOut(3);
    }

    public static Pin LDSP() {
        return DC8.getOut(4);
    }

    public static Pin STSP() {
        return DC8.getOut(5);
    }

    public static Pin G0_PG5_6() {
        return DC8.getOut(6);
    }

    public static Pin G0_PG5_7() {
        return DC8.getOut(7);
    }

    public static Pin ADD() {
        return DC9.getOut(0);
    }

    public static Pin SUB() {
        return DC9.getOut(1);
    }

    public static Pin INC() {
        return DC9.getOut(2);
    }

    public static Pin DEC() {
        return DC9.getOut(3);
    }

    public static Pin AND() {
        return DC9.getOut(4);
    }

    public static Pin OR() {
        return DC9.getOut(5);
    }

    public static Pin XOR() {
        return DC9.getOut(6);
    }

    public static Pin NOT() {
        return DC9.getOut(7);
    }

    public static Pin ASR() {
        return DC10.getOut(0);
    }

    public static Pin LSR() {
        return DC10.getOut(1);
    }

    public static Pin ROR() {
        return DC10.getOut(2);
    }

    public static Pin RORC() {
        return DC10.getOut(3);
    }

    public static Pin ASL() {
        return DC10.getOut(4);
    }

    public static Pin LSL() {
        return DC10.getOut(5);
    }

    public static Pin ROL() {
        return DC10.getOut(6);
    }

    public static Pin ROLC() {
        return DC10.getOut(7);
    }

    public static Pin regdir() {
        return DC11.getOut(0);
    }

    public static Pin regind() {
        return DC11.getOut(1);
    }

    public static Pin memdir() {
        return DC11.getOut(2);
    }

    public static Pin memind() {
        return DC11.getOut(3);
    }

    public static Pin regindpom() {
        return DC11.getOut(4);
    }

    public static Pin bxpom() {
        return DC11.getOut(5);
    }

    public static Pin pcpom() {
        return DC11.getOut(6);
    }

    public static Pin imm() {
        return DC11.getOut(7);
    }
}
